﻿/**************
* 
* 
*  Description:
*  Create By kain.hong at 11/17/2010 9:53:28 AM
*  
*
*  Revision History:
*  Date                  Who                 What
*  
* 
********/
#region namespace

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Globalization;
#endregion

namespace Janus.Cores.Globalization
{
    /// <summary>
    /// 定义资源提供接口
    /// </summary>
    public interface IResourcesProvider
    {
        ///// <summary>
        ///// 获取资源中的文本
        ///// </summary>
        ///// <param name="name">文本名称</param>
        ///// <param name="culture"><see cref="System.Globalization.CultureInfo"/></param>
        ///// <returns>资源中的文本</returns>
        //string this[string name, CultureInfo culture] { get; }

        ///// <summary>
        ///// 获取资源中的文本
        ///// </summary>
        ///// <param name="name">文本名称</param>
        ///// <returns>资源中的文本</returns>
        //string this[string name] { get; }

        /// <summary>
        /// 获取资源中的文本
        /// </summary>
        /// <param name="name">文本名称</param>
        /// <returns>资源中的文本</returns>
        string GetString(string name);

        /// <summary>
        /// 获取资源中的文本
        /// </summary>
        /// <param name="name">文本名称</param>
        /// <param name="culture"><see cref="System.Globalization.CultureInfo"/></param>
        /// <returns>资源中的文本</returns>
        string GetString(string name, CultureInfo culture);

        /// <summary>
        /// 获取资源
        /// </summary>
        /// <param name="name">名称</param>
        /// <returns>资源</returns>
        object GetObject(string name);

        /// <summary>
        /// 获取资源
        /// </summary>
        /// <param name="name">名称</param>
        /// <param name="culture"><see cref="System.Globalization.CultureInfo"/></param>
        /// <returns>资源</returns>
        object GetObject(string name, CultureInfo culture);

        /// <summary>
        /// 获取Key的<see cref="IEnumerator"/>
        /// </summary>
        IEnumerable<string> Keys { get; }
    }
}
